/**
 * 请求模块
 */

//  导入axios
import axios from "axios"
// 导入仓库
import store from "@/store"
// 导入JSONBig 
import JSONBig  from "json-bigint"

// JSONBig.parse()
// JSONBig.stringiry()
// 可以处理数据中超过JavaScript安全范围的内容
// 创建实例
const request  = axios.create({
    // baseURL: "http://ttapi.research.itcast.cn/" // 基础路径
    baseURL: "http://toutiao-app.itheima.net", // 基础路径
    // 自定义后端返回的原始数据
    transformResponse:[function(data){
        // axios默认内部会这样来处理后端返回的数据
        // return JSON.parse(data)
        try {
            return JSONBig.parse(data)
        } catch (error) {
            console.log(error);
            return data;
        }
    }]
})

// 设置请求拦截器
request.interceptors.request.use(config=>{
    // 通过判断user是否存在，如果存在就设置在请求头里面携带token
    const { user } = store.state
    if (user &&  user.token){
        config.headers.Authorization = `Bearer ${user.token}`
    }
    return config
},err => {
    return Promise.reject(err)
})

export default request;